Add a variant of xml_init that accepts a file offset...
authorrobertl <robertl>
Tue, 12 Aug 2008 04:11:38 +0000 (04:11 +0000)
committerrobertl <robertl>
Tue, 12 Aug 2008 04:11:38 +0000 (04:11 +0000)
xmlgeneric.c
xmlgeneric.h

index d83faceb2de4d94829b796c9ec95ba511b006d26..1b4c3450286e6b545e70d44d65243cd91142d350 100644 (file)
@@ -304,10 +304,14 @@ void xml_ignore_tags(const char **taglist)
 }
 
 void
-xml_init(const char *fname, xg_tag_mapping *tbl, const char *encoding)
+xml_init0(const char *fname, xg_tag_mapping *tbl, const char *encoding, 
+          off_t offset )
 {
        if (fname) {
                ifd = gbfopen(fname, "r", MYNAME);
+               if (offset) {
+                       gbfseek(ifd, offset, SEEK_SET);
+               }
        } else {
                ifd = NULL;
        }
@@ -330,6 +334,18 @@ xml_init(const char *fname, xg_tag_mapping *tbl, const char *encoding)
        XML_SetCharacterDataHandler(psr, xml_cdata);
 }
 
+/* xml_init0 iwth a default seek argument of zero */
+void
+xml_init(const char *fname, xg_tag_mapping *tbl, const char *encoding) {
+  xml_init0(fname, tbl, encoding, 0);
+}
+
+void
+xml_init_offset(const char *fname, xg_tag_mapping *tbl, const char *encoding,
+                off_t off) {
+  xml_init0(fname, tbl, encoding, off);
+}
+
 void
 xml_deinit(void)
 {
index 0ce0834b9934ae236ebfe113b979000a0617541c..bacdc1ef05f35b362c5ed1c7b0887d1e27833caa 100644 (file)
@@ -57,6 +57,8 @@ void write_xml_header(gbfile *ofd);
 void xml_ignore_tags(const char **taglist);
 
 void xml_init(const char *fname, xg_tag_mapping *tbl,const char *encoding);
+void xml_init_offset(const char *fname, xg_tag_mapping *tbl,
+                     const char *encoding, off_t offset);
 void xml_read(void);
 void xml_readstring(char *str);
 void xml_readprefixstring(char *str);